home *** CD-ROM | disk | FTP | other *** search
- ;------------------------------------------------------------------------------
- ; .ss.
- ; `²²'
- ; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
- ; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
- ; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
- ; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
- ; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
- ; .sS²°$$$²²°"' d²°'
- ; .$$² .$$'
- ; $$$.,d$$'
- ; `²S$$S²'
- ;------------------------------------------------------------------------------
- ; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
- ;------------------------------------------------------------------------------
- ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
- ;------------------------------------------------------------------------------
-
- Boolean BOOLEAN003
- Boolean BOOLEAN004
- Boolean BOOLEAN005
- Boolean BOOLEAN006
- Boolean BOOLEAN007
- Boolean BOOLEAN008
- Boolean BOOLEAN009
- Boolean BOOLEAN010
- Boolean BOOLEAN011
- Boolean BOOLEAN012
- Boolean BOOLEAN013
- Boolean BOOLEAN014
- Boolean BOOLEAN015
- Integer INTEGER003
- Integer INTEGER004
- Integer INTEGER005
- Integer INTEGER011
- Integer TINTEGER012(3)
- Integer TINTEGER013(3)
- String STRING001
- String STRING017
- String STRING018
- String STRING019
- String STRING020
- String STRING021
- String STRING022
- String STRING023
- String STRING024
- String STRING025
- String STRING026
- String STRING027
- String STRING028
- String STRING029
- String STRING030
- String STRING031
- String STRING032
- String TSTRING033(10)
- String TSTRING034(10)
- String TSTRING035(10)
- String STRING036
- String STRING037
- String STRING038
- String STRING039
- String STRING040
- String STRING041
- String STRING042
- String STRING043
- String STRING044
- String STRING045
- String STRING046
- String STRING047
- String STRING048
- String STRING049
- String STRING050
- String STRING051
- String STRING052
- String STRING054
- String STRING057
- Int INT001
- Int INT002
- Int INT003
- Int INT004
- Int INT005
- Int INT006
- Int INT007
- Int INT008
- Declare Function FUNCTION001(String STRING053) String
- Declare Function FUNCTION002(String STRING055) Boolean
- Declare Function FUNCTION003(String STRING056) String
- Declare Function FUNCTION004(Integer INTEGER010) Integer
- Declare Procedure PROC001(String STRING002)
- Declare Procedure PROC002(String STRING003, Integer INTEGER001, String STRING004)
- Declare Procedure PROC003(String STRING005, String STRING006, String STRING007, String STRING008)
- Declare Procedure PROC004(String STRING009, String STRING010, String STRING011, String STRING012, Integer INTEGER002, String STRING013, String STRING014, String STRING015, String STRING016, Boolean BOOLEAN001, Boolean BOOLEAN002)
- Declare Procedure PROC005(Integer INTEGER006, Integer INTEGER007, Var Integer INTEGER008)
- Declare Procedure PROC006()
- Declare Procedure PROC007(Var Int INT009, Int INT010)
- Declare Procedure PROC008(Integer INTEGER009)
- Declare Procedure PROC009(Int INT011)
-
- ;------------------------------------------------------------------------------
-
- Goto LABEL004
- End
-
- ;------------------------------------------------------------------------------
-
- Procedure PROC001(String STRING002)
-
- GetUser
- FOpen 3, STRING002, 1, 3
- FPutLn 3, PCBMac("@BOARDNAME@")
- STRING001 = ReadLine(PCBDat(), 2)
- Tokenize STRING001
- FPutLn 3, GetToken()
- FPutLn 3, GetToken()
- If (OnLocal()) Then
- STRING001 = "COM0:"
- Else
- STRING001 = ReadLine(PCBDat(), 52)
- Endif
- FPutLn 3, STRING001
- If (OnLocal()) Then
- STRING001 = "0 BAUD,N,8,1"
- Else
- STRING001 = ReadLine(PCBDat(), 53) + " BAUD,N,8,1"
- Endif
- FPutLn 3, STRING001
- FPutLn 3, "0"
- If (U_Alias == "") Then
- STRING001 = U_Name()
- Else
- STRING001 = U_Alias
- Endif
- Tokenize STRING001
- FPutLn 3, GetToken()
- FPutLn 3, GetToken()
- FPutLn 3, U_City
- FPutLn 3, "1"
- FPutLn 3, U_Sec
- FPutLn 3, PCBMac("@TIMELEFT@")
- FClose 3
- FClose -1
-
- EndProc
-
-
- ;------------------------------------------------------------------------------
-
- Procedure PROC002(String STRING003, Integer INTEGER001, String STRING004)
-
- MsgToFile CurConf(), INTEGER001, TempPath() + "temp" + String(PcbNode())
- FOpen 2, TempPath() + "temp" + String(PcbNode()), 0, 3
- While (STRING001 <> "Message Body:") Do
- FGet 2, STRING001
- EndWhile
- FOpen 3, STRING003, 1, 3
- :LABEL001
- If (Ferr(2)) Goto LABEL003
- FGet 2, STRING001
- If (Left(STRING001, 1) == Chr(1)) Goto LABEL002
- If (Left(STRING001, Len(STRING004)) == STRING004) Then
- FPutLn 3, STRING001
- Else
- FPutLn 3, STRING004 + STRING001
- Endif
- :LABEL002
- Goto LABEL001
- :LABEL003
- FClose 2
- FClose 3
- Delete TempPath() + "temp" + String(PcbNode())
-
- EndProc
-
-
- ;------------------------------------------------------------------------------
-
- Procedure PROC003(String STRING005, String STRING006, String STRING007, String STRING008)
-
- FOpen 3, STRING005, 1, 0
- FPutLn 3, Mixed(STRING007)
- FPutLn 3, Mixed(STRING006)
- FPutLn 3, STRING008
- FPutLn 3, String(HiMsgNum() + 1)
- FPutLn 3, ConfInfo(CurConf(), 1)
- FPutLn 3, "NO"
- FClose 3
-
- EndProc
-
-
- ;------------------------------------------------------------------------------
-
- Procedure PROC004(String STRING009, String STRING010, String STRING011, String STRING012, Integer INTEGER002, String STRING013, String STRING014, String STRING015, String STRING016, Boolean BOOLEAN001, Boolean BOOLEAN002)
-
- PROC001(STRING011)
- If (BOOLEAN002) PROC002(STRING010, INTEGER002, STRING016)
- PROC003(STRING012, STRING013, STRING014, STRING015)
- SaveScrn
- If (Right(TempPath(), 1) == "\") Then
- STRING001 = TempPath()
- Else
- STRING001 = TempPath() + "\"
- Endif
- Shell 1, INT001, STRING009, STRING001
- RestScrn
- Delete STRING011
- If (Exist(TempPath() + "MSGABT")) Then
- Delete TempPath() + "MSGABT"
- Wait
- ElseIf (BOOLEAN001) Then
- Message CurConf(), STRING013, STRING014, STRING015, "R", 0, 0, ConfInfo(CurConf(), 31), STRING010
- Else
- Message CurConf(), STRING013, STRING014, STRING015, "N", 0, 0, ConfInfo(CurConf(), 31), STRING010
- Endif
- Delete STRING010
- Delete STRING012
-
- EndProc
-
- :LABEL004
- INTEGER005 = CurConf()
- If (Exist(PPEPath() + "REPLY" + String(PcbNode()))) Then
- BOOLEAN006 = 0
- Delete PPEPath() + "REPLY" + String(PcbNode())
- Else
- BOOLEAN006 = 1
- Endif
- INT006 = ReadLine(PCBDat(), 6)
- INT007 = ReadLine(PCBDat(), 7)
- INTEGER004 = ReadLine(PCBDat(), 108)
- INT008 = ReadLine(PCBDat(), 131)
- FCloseAll
- FOpen 1, PPEPath() + "READ.CFG", 0, 0
- FGet 1, STRING029
- FGet 1, STRING030
- FGet 1, STRING031
- FGet 1, STRING032
- FClose 1
- STRING017 = PPEPath() + "READTEXT" + LangExt()
- If (!Exist(STRING017)) STRING017 = PPEPath() + "READTEXT"
- FOpen 1, STRING017, 0, 0
- FGet 1, STRING036
- FGet 1, STRING037
- FGet 1, STRING038
- FGet 1, STRING039
- FGet 1, STRING040
- FGet 1, STRING041
- FGet 1, STRING043
- FGet 1, STRING044
- FGet 1, STRING045
- FGet 1, STRING046
- FGet 1, STRING047
- FClose 1
- STRING042 = PPEPath() + "EXT" + String(PcbNode()) + ".BAT"
- If (Exist(STRING042)) Then
- BOOLEAN007 = 1
- Else
- BOOLEAN007 = 0
- Endif
- BOOLEAN012 = 0
- If (BOOLEAN007) Then
- STRING017 = PPEPath() + "POSTBAR" + LangExt()
- If (!Exist(STRING017)) STRING017 = PPEPath() + "POSTBAR"
- If (Exist(STRING017)) Then
- BOOLEAN012 = 1
- FOpen 1, STRING017, 0, 0
- FGet 1, STRING048
- FGet 1, STRING049
- FGet 1, STRING050
- FGet 1, STRING051
- FGet 1, STRING052
- FGet 1, STRING001
- FClose 1
- If (Trim(Left(STRING001, 1), " ") == "Y") Then
- BOOLEAN013 = 1
- Goto LABEL005
- Endif
- BOOLEAN013 = 0
- Endif
- Endif
- :LABEL005
- STRING017 = PPEPath() + "READ" + String(PcbNode())
- GetUser
- BOOLEAN010 = U_LongHDR
- Gosub LABEL024
- BOOLEAN003 = 1
- If (IsNonStop()) Then
- BOOLEAN011 = 1
- Else
- BOOLEAN011 = 0
- Endif
- If (TokCount() == 0) Then
- DispFile PPEPath() + "READMENU", 4
- InputStr STRING037, STRING001, 7, 79, Mask_Ascii(), 256 + 8
- Tokenize STRING001
- If (Trim(STRING001, " ") == "") Then
- PROC008(INTEGER005)
- Endif
- Goto LABEL006
- Else
- :LABEL006
- Newline
- STRING001 = Trim(Upper(GetToken()), " ")
- Select Case (STRING001)
- Case "A"
- BOOLEAN003 = 1
- BOOLEAN004 = 1
- DispText 145, 256
- INTEGER003 = U_Lmr(CurConf()) + 1
- Case "L"
- BOOLEAN003 = 0
- INTEGER003 = HiMsgNum()
- Case "Y"
- BOOLEAN003 = 1
- BOOLEAN005 = 1
- INTEGER003 = U_Lmr(CurConf())
- PrintLn STRING046
- Newline
- Case 0
- BOOLEAN003 = 0
- INTEGER003 = S2I(Trim(StripStr(STRING001, "-"), " "), 10)
- Case 0
- BOOLEAN003 = 1
- INTEGER003 = S2I(Trim(StripStr(STRING001, "+"), " "), 10)
- Case Else
- INTEGER003 = S2I(STRING001, 10)
- Endif
- End Select
- :LABEL007
- BOOLEAN009 = 0
- If (BOOLEAN005) Then
- INTEGER003 = FUNCTION004(INTEGER003)
- If (INTEGER003 == -1) Then
- PROC008(INTEGER005)
- Endif
- Endif
- If (INTEGER003 > HiMsgNum()) Then
- SetLmr CurConf(), HiMsgNum()
- If (BOOLEAN004) Then
- PROC005(CurConf(), INTEGER004, INTEGER003)
- Endif
- Endif
- If (Exist(STRING017)) Delete STRING017
- MsgToFile CurConf(), INTEGER003, STRING017
- If (Exist(STRING017)) Goto LABEL009
- If (INTEGER003 < LoMsgNum()) Then
- If (BOOLEAN003) Then
- Inc INTEGER003
- Goto LABEL007
- Goto LABEL008
- Endif
- PROC008(INTEGER005)
- Endif
- :LABEL008
- If (INTEGER003 > HiMsgNum()) PROC008(INTEGER005)
- If (BOOLEAN003) Then
- Inc INTEGER003
- Else
- Dec INTEGER003
- Endif
- Goto LABEL007
- :LABEL009
- FOpen 2, STRING017, 0, 0
- For INT002 = 1 To 10
- FGet 2, STRING001
- STRING001 = FUNCTION001(STRING001)
- If (INT002 == 1) Then
- STRING019 = Trim(STRING001, " ")
- Continue
- Endif
- If (INT002 == 2) Then
- STRING025 = STRING001
- Continue
- Endif
- If (INT002 == 3) Then
- If (STRING001 == "0") Then
- STRING026 = "NONE"
- Goto LABEL010
- Endif
- STRING026 = STRING001
- :LABEL010
- Continue
- Endif
- If (INT002 == 5) Then
- STRING023 = STRING001
- Continue
- Endif
- If (INT002 == 6) Then
- STRING024 = STRING001
- Continue
- Endif
- If (INT002 == 7) Then
- If (STRING001 == "@USER@") Then
- If (CurSec() < SysopSec()) Then
- If (U_Alias == "") Then
- STRING020 = U_Name()
- Goto LABEL011
- Endif
- STRING020 = U_Alias
- :LABEL011
- Goto LABEL012
- Endif
- STRING020 = "(generic message)"
- :LABEL012
- Goto LABEL013
- Endif
- STRING020 = STRING001
- :LABEL013
- Continue
- Endif
- If (INT002 == 9) Then
- STRING021 = STRING001
- Continue
- Endif
- If (INT002 == 10) Then
- STRING022 = STRING001
- Endif
- Next
- If (FUNCTION002(STRING019)) Goto LABEL014
- FClose 2
- Delete STRING017
- If (BOOLEAN003) Then
- Inc INTEGER003
- Else
- Dec INTEGER003
- Endif
- Goto LABEL007
- :LABEL014
- If (INTEGER003 == ScanMsgHdr(CurConf(), INTEGER003, 10, "R")) Then
- STRING027 = "YES"
- Else
- STRING027 = "NO"
- Endif
- BOOLEAN014 = 1
- Gosub LABEL027
- While (STRING001 <> "Message Body:") Do
- FGet 2, STRING001
- EndWhile
- DefColor
- StartDisp 1
- INT003 = INT004 + 1
- INT005 = 0
- :LABEL015
- If (Ferr(2)) Goto LABEL017
- FGet 2, STRING001
- If (Left(STRING001, 1) == Chr(1)) Then
- TSTRING035(INT005) = Right(STRING001, Len(STRING001) - 1)
- Inc INT005
- Goto LABEL015
- Endif
- If (Left(STRING001, Len(STRING029)) == STRING029) Then
- STRING001 = Right(STRING001, Len(STRING001) - Len(STRING029))
- STRING001 = STRING030 + STRING001
- Endif
- STRING001 = ReplaceStr(STRING001, "|01", "@X01")
- STRING001 = ReplaceStr(STRING001, "|02", "@X02")
- STRING001 = ReplaceStr(STRING001, "|03", "@X03")
- STRING001 = ReplaceStr(STRING001, "|04", "@X04")
- STRING001 = ReplaceStr(STRING001, "|05", "@X05")
- STRING001 = ReplaceStr(STRING001, "|06", "@X06")
- STRING001 = ReplaceStr(STRING001, "|07", "@X07")
- STRING001 = ReplaceStr(STRING001, "|08", "@X08")
- STRING001 = ReplaceStr(STRING001, "|09", "@X09")
- STRING001 = ReplaceStr(STRING001, "|10", "@X0A")
- STRING001 = ReplaceStr(STRING001, "|11", "@X0B")
- STRING001 = ReplaceStr(STRING001, "|12", "@X0C")
- STRING001 = ReplaceStr(STRING001, "|13", "@X0D")
- STRING001 = ReplaceStr(STRING001, "|14", "@X0E")
- STRING001 = ReplaceStr(STRING001, "|15", "@X0F")
- If (InStr(STRING001, Chr(27)) > 0) Then
- PrintLn STRING001
- Else
- PrintLn "@X07" + STRING001
- Endif
- If (BOOLEAN011) Then
- If (Abort()) Then
- BOOLEAN011 = 0
- FClose 2
- Delete STRING017
- Goto LABEL018
- Endif
- Else
- If (BOOLEAN009) Goto LABEL016
- Inc INT003
- If (INT003 == U_PageLen - 1) Then
- StartDisp 0
- More
- If (Abort()) Then
- FClose 2
- Delete STRING017
- Goto LABEL018
- Endif
- If (IsNonStop()) BOOLEAN009 = 1
- StartDisp 1
- INT003 = 1
- If (U_Cls) Then
- If (U_Scroll) Goto LABEL016
- INT003 = INT004 + 1
- PROC009(INT003 + 1)
- BOOLEAN009 = 0
- Endif
- Endif
- Endif
- :LABEL016
- Goto LABEL015
- :LABEL017
- FClose 2
- Delete STRING017
- :LABEL018
- STRING001 = ""
- If (!BOOLEAN011) InputStr ReplaceStr(ReplaceStr(STRING036, "@CONF@", ConfInfo(CurConf(), 1)), "@CURMSGNUM@", INTEGER003) , STRING001, 7, 79, Mask_Ascii() , 256 + 8
- Select Case (StripStr(STRING001, " "))
- Case ""
- If (BOOLEAN003) Then
- Inc INTEGER003
- Else
- Dec INTEGER003
- Endif
- Goto LABEL007
- Case "+"
- Inc INTEGER003
- BOOLEAN003 = 1
- Goto LABEL007
- Case "-"
- Dec INTEGER003
- BOOLEAN003 = 0
- Goto LABEL007
- Case ">"
- INTEGER004 = ReadLine(PCBDat(), 108)
- FCloseAll
- If (CurConf() == INTEGER004) Then
- Newline
- PrintLn STRING040
- Wait
- Else
- PROC005(CurConf(), INTEGER004, INTEGER003)
- Endif
- Goto LABEL007
- Case "<"
- INTEGER004 = -1
- If (CurConf() == 0) Then
- Newline
- PrintLn STRING040
- Wait
- Else
- PROC005(CurConf(), INTEGER004, INTEGER003)
- Endif
- Goto LABEL007
- Case "!"
- If (CurSec() >= SysopSec()) Then
- Newline
- If (INT005 == 0) Then
- PrintLn STRING045
- Goto LABEL019
- Endif
- PrintLn STRING043
- Newline
- DefColor
- For INT002 = 0 To INT005
- If (Trim(TSTRING035(INT002), " ") <> "") PrintLn TSTRING035(INT002)
- Next
- Newline
- PrintLn STRING044
- Endif
- :LABEL019
- Newline
- Goto LABEL018
- Case "A", "AG", "AGA", "AGAI", "AGAIN"
- Goto LABEL007
- Case ((StripStr(STRING001, " ") == "D") || (StripStr(STRING001, " ") == "DO")) || (StripStr(STRING001, " ") == "DOW"), "D", "DO", "DOW", "DOWN", "DOWNL", "DOWNLO", "DOWNLOA", "DOWNLOAD"
- STRING018 = ""
- Newline
- If (OnLocal()) Then
- InputText "@X08(@X0Alocal only@X08)@X0F capture file path@X08: _", STRING018, 7, 79
- If (Trim(STRING018, " ") == "") Goto LABEL018
- If (Right(STRING018, 1) == "\") Then
- STRING018 = STRING018 + Strip(Left(String(INTEGER003), 8) + ".CAP", " ")
- Else
- STRING018 = STRING018 + "\" + Strip(Left(String(INTEGER003), 8) + ".CAP", " ")
- Endif
- Backup 79
- ClrEol
- Print "@X08(@X0Alocal only@X08)@X0F writting " + Lower(STRING018) + "@X08... "
- Else
- STRING018 = TempPath() + Strip(Left(String(INTEGER003), 8) + ".CAP", " ")
- Endif
- MsgToFile CurConf(), INTEGER003, STRING017
- FOpen 2, STRING017, 0, 0
- While (STRING001 <> "Message Body:") Do
- FGet 2, STRING001
- EndWhile
- FOpen 3, STRING018, 1, 0
- For INT002 = 0 To INT004
- FPutLn 3, RTrim(TSTRING034(INT002), " ")
- Next
- :LABEL020
- If (Ferr(2)) Goto LABEL021
- FGet 2, STRING001
- If (!(Left(STRING001, 1) == Chr(1))) FPutLn 3, StripAtx(FUNCTION003(STRING001))
- Goto LABEL020
- :LABEL021
- FCloseAll
- Delete STRING017
- If (OnLocal()) Goto LABEL022
- Shell 1, STRING001, "ZMSEND.EXE", STRING018
- Delete STRING018
- Wait
- Goto LABEL023
- :LABEL022
- PrintLn "@X0Fdone!"
- :LABEL023
- Newline
- Goto LABEL018
- Case "R", "RE", "REP", "REPL", "REPLY"
- If (BOOLEAN007) Then
- If (U_Alias == "") Then
- STRING001 = U_Name()
- Else
- STRING001 = U_Alias
- Endif
- PROC004(STRING042, TempPath() + "MSGTMP", TempPath() + "DORINFO1.DEF", TempPath() + "MSGINF", INTEGER003, STRING021, STRING001, STRING022, STRING029, BOOLEAN008, 1)
- Goto LABEL007
- Else
- If (BOOLEAN003) Then
- STRING001 = "+"
- Else
- STRING001 = "-"
- Endif
- STRING001 = String(INTEGER003) + STRING001
- STRING018 = TempPath() + "CALLED." + String(PcbNode())
- If (Exist(STRING018)) Delete STRING018
- FOpen 3, STRING018, 1, 3
- FPut 3, PPEPath() + PPEName() + ".PPE " + STRING001
- FClose 3
- If (INTEGER003 > U_Lmr(CurConf())) Then
- SetLmr CurConf(), INTEGER003 - 1
- Endif
- PutUser
- STRING018 = PPEPath() + "REPLY" + String(PcbNode())
- If (Exist(STRING018)) Delete STRING018
- FOpen 3, STRING018, 1, 3
- FPut 3, String(INTEGER003)
- FClose 3
- If (BOOLEAN006) Then
- KbdStuff "REPLY^M"
- Endif
- Endif
- End
- Case "L", "LA", "LAS", "LAST"
- BOOLEAN003 = 0
- INTEGER003 = HiMsgNum()
- Goto LABEL007
- Case "K", "KI", "KIL", "KILL"
- Newline
- If (CurSec() >= INT008) Then
- If ((INTEGER003 == ScanMsgHdr(CurConf(), INTEGER003, 7, U_Alias)) || (INTEGER003 == ScanMsgHdr(CurConf(), INTEGER003, 11, U_Alias))) Then
- KillMsg CurConf(), INTEGER003
- OpText String(INTEGER003)
- PrintLn STRING038
- If (BOOLEAN003) Then
- Inc INTEGER003
- Else
- Dec INTEGER003
- Endif
- ElseIf (CurSec() == SysopSec()) Then
- KillMsg CurConf(), INTEGER003
- OpText String(INTEGER003)
- PrintLn STRING038
- If (BOOLEAN003) Then
- Inc INTEGER003
- Else
- Dec INTEGER003
- Endif
- Else
- OpText String(INTEGER003)
- PrintLn STRING039
- Newline
- Goto LABEL018
- Endif
- Else
- OpText String(INTEGER003)
- PrintLn STRING039
- Newline
- Goto LABEL018
- Endif
- Newline
- Goto LABEL007
- Case "P", "PO", "POS", "POST"
- If (INTEGER003 > U_Lmr(CurConf())) Then
- SetLmr CurConf(), INTEGER003
- Endif
- PutUser
- Tokenize "ALL"
- Call PPEPath() + "ENTER.PPE"
- End
- Case "NS", "NONSTOP"
- BOOLEAN011 = 1
- Goto LABEL018
- Case "SH", "SHO", "SHOR", "SHORT"
- BOOLEAN010 = 0
- Gosub LABEL024
- Goto LABEL007
- Case "LO", "LON", "LONG"
- BOOLEAN010 = 1
- Gosub LABEL024
- Goto LABEL007
- Case "Q", "QU", "QUI", "QUIT"
- PROC008(INTEGER005)
- Case "?", "H", "HE", "HEL", "HELP"
- StartDisp 0
- DispFile PPEPath() + "READHLP", 4
- StartDisp 1
- Goto LABEL018
- Case Else
- If (InStr(STRING001, "-") > 0) Then
- BOOLEAN003 = 0
- INTEGER003 = S2I(Trim(StripStr(STRING001, "-"), " "), 10)
- ElseIf (InStr(STRING001, "+") > 0) Then
- BOOLEAN003 = 1
- INTEGER003 = S2I(Trim(StripStr(STRING001, "+"), " "), 10)
- Else
- INTEGER003 = S2I(STRING001, 10)
- Endif
- Goto LABEL007
- End Select
- End
- :LABEL024
- If (BOOLEAN010) Then
- STRING001 = PPEPath() + "READHDR" + LangExt()
- If (!Exist(STRING001)) STRING001 = PPEPath() + "READHDR"
- Else
- STRING001 = PPEPath() + "READHDRS" + LangExt()
- If (!Exist(STRING001)) STRING001 = PPEPath() + "READHDRS"
- Endif
- FOpen 1, STRING001, 0, 0
- INT002 = 0
- :LABEL025
- If (Ferr(1)) Goto LABEL026
- FGet 1, TSTRING033(INT002)
- Inc INT002
- Goto LABEL025
- :LABEL026
- FClose 1
- INT004 = INT002 - 1
- Return
- :LABEL027
- Newline
- If (U_Cls) Cls
- For INT002 = 0 To INT004
- STRING001 = TSTRING033(INT002)
- STRING001 = ReplaceStr(STRING001, "@TO@", Upper(STRING020))
- STRING001 = ReplaceStr(STRING001, "@MTO@", Mixed(STRING020))
- STRING001 = ReplaceStr(STRING001, "@FROM@", Upper(STRING021))
- STRING001 = ReplaceStr(STRING001, "@MFROM@", Mixed(STRING021))
- STRING001 = ReplaceStr(STRING001, "@SUBJECT@", STRING022)
- STRING001 = ReplaceStr(STRING001, "@DATE@", ReplaceStr(STRING023, "-", STRING031))
- STRING001 = ReplaceStr(STRING001, "@TIME@", ReplaceStr(STRING024, ":", STRING032))
- STRING001 = ReplaceStr(STRING001, "@CURMSGNUM@", STRING025)
- STRING001 = ReplaceStr(STRING001, "@HIGHMSGNUM@", String(HiMsgNum()))
- STRING001 = ReplaceStr(STRING001, "@REPLYTO@", STRING026)
- STRING001 = ReplaceStr(STRING001, "@READ@", STRING028)
- STRING001 = ReplaceStr(STRING001, "@REPLIED@", STRING027)
- STRING001 = ReplaceStr(STRING001, "@CONF@", ConfInfo(CurConf(), 1))
- PrintLn STRING001
- TSTRING034(INT002) = ScrText(1, GetY() - 1, 80, 0)
- Next
- Return
- End
-
- ;------------------------------------------------------------------------------
-
- Function FUNCTION001(String STRING053) String
-
- Integer INTEGER006
-
- FUNCTION001 = Right(STRING053, Len(STRING053) - 18)
- If (Len(FUNCTION001) > 17) Then
- FUNCTION001 = Trim(Left(FUNCTION001, 17), " ")
- Endif
-
- EndFunc
-
-
- ;------------------------------------------------------------------------------
-
- Procedure PROC005(Integer INTEGER006, Integer INTEGER007, Var Integer INTEGER008)
-
- :LABEL028
- If (Abort()) PROC008(INTEGER005)
- If (INTEGER007 == -1) Then
- Goto LABEL032
- Endif
- Inc INTEGER006
- :LABEL029
- If (ConfSel(INTEGER006)) Goto LABEL031
- Inc INTEGER006
- If (INTEGER006 > INTEGER007) Then
- If (BOOLEAN004) Goto LABEL030
- Newlines 2
- PrintLn STRING040
- :LABEL030
- PROC008(INTEGER005)
- Endif
- Goto LABEL029
- :LABEL031
- Goto LABEL034
- :LABEL032
- Dec INTEGER006
- :LABEL033
- If (ConfSel(INTEGER006)) Goto LABEL034
- Dec INTEGER006
- If (INTEGER006 < 0) Then
- PROC008(INTEGER005)
- Endif
- Goto LABEL033
- :LABEL034
- If (Strip(ConfInfo(INTEGER006, 1), " ") == "") Then
- Newline
- OpText String(INTEGER006)
- Print STRING041
- Log "De-sel. non-existant conf.: '" + String(INTEGER006) + "'", 0
- ConfUnflag INTEGER006, 4 + 1 + 2
- SetLmr CurConf(), 0
- PutUser
- Goto LABEL028
- Endif
- If (INTEGER006 < 0) Then
- If (BOOLEAN004) Goto LABEL035
- Newlines 2
- PrintLn STRING040
- :LABEL035
- PROC008(INTEGER005)
- Endif
- If (BOOLEAN011) Goto LABEL036
- If (BOOLEAN014) Then
- If (BOOLEAN012) PROC006()
- Endif
- :LABEL036
- If (Abort()) PROC008(INTEGER005)
- Command 0, "JOIN " + String(INTEGER006) + ";Q"
- BOOLEAN014 = 0
- INTEGER008 = U_Lmr(CurConf())
- If (Abort()) PROC008(INTEGER005)
- If (INTEGER008 >= HiMsgNum()) Then
- DispText 78, 0
- Goto LABEL028
- Endif
-
- EndProc
-
-
- ;------------------------------------------------------------------------------
-
- Procedure PROC006()
-
- Newline
- Print ReplaceStr(STRING048, "@CONF@", ConfInfo(CurConf(), 1))
- INT002 = GetX()
- If (BOOLEAN013) Then
- Print STRING050 + STRING051
- INT003 = 1
- Else
- Print STRING049 + STRING052
- INT003 = 2
- Endif
- :LABEL037
- STRING001 = Upper(TInkey(0))
- Select Case (STRING001)
- Case "6"
- STRING001 = "RIGHT"
- Case "4"
- STRING001 = "LEFT"
- End Select
- If ((STRING001 == "LEFT") || (STRING001 == "RIGHT")) PROC007(INT003, INT002)
- If (STRING001 == NoChar()) Then
- INT003 = 1
- PROC007(INT003, INT002)
- STRING001 = Chr(13)
- Endif
- If (STRING001 == YesChar()) Then
- INT003 = 2
- PROC007(INT003, INT002)
- STRING001 = Chr(13)
- Endif
- If (STRING001 == Chr(13)) Then
- If (INT003 == 1) Then
- Call PPEPath() + "ENTER.PPE"
- Endif
- Else
- Goto LABEL037
- Endif
- Newline
-
- EndProc
-
-
- ;------------------------------------------------------------------------------
-
- Procedure PROC007(Var Int INT009, Int INT010)
-
- If (INT009 == 1) Then
- Backup GetX() - INT010
- Print STRING049 + STRING052
- INT009 = 2
- Else
- Backup GetX() - INT010
- Print STRING050, STRING051
- INT009 = 1
- Endif
-
- EndProc
-
-
- ;------------------------------------------------------------------------------
-
- Procedure PROC008(Integer INTEGER009)
-
- If (INTEGER003 > U_Lmr(CurConf())) Then
- SetLmr CurConf(), INTEGER003
- Endif
- If (INTEGER009 <> CurConf()) Then
- Command 0, "JOIN " + String(INTEGER009) + ";Q"
- Endif
- PutUser
- If (BOOLEAN005) Then
- If (!BOOLEAN014) PrintLn STRING047
- Endif
- Newline
- PrintLn "@X07Read.ppe v1.20 reading complete! @X0FM@X07av@X08erick/[@X0CANTi@X08-@X0FX@X08] @X07'96"
- End
-
- EndProc
-
-
- ;------------------------------------------------------------------------------
-
- Procedure PROC009(Int INT011)
-
- For INT002 = INT011 To U_PageLen
- AnsiPos 0, INT002
- ClrEol
- Next
- AnsiPos 0, INT011
-
- EndProc
-
-
- ;------------------------------------------------------------------------------
-
- Function FUNCTION002(String STRING055) Boolean
-
- String STRING056
-
- FUNCTION002 = 0
- If (U_Alias == "") Then
- STRING001 = U_Name()
- Else
- STRING001 = U_Alias
- Endif
- Select Case (STRING055)
- Case ""
- STRING028 = "N/A"
- BOOLEAN008 = 0
- FUNCTION002 = 1
- Case "*"
- STRING028 = "NO"
- BOOLEAN008 = 1
- If (CurSec() < INT007) Then
- FUNCTION002 = 0
- Else
- FUNCTION002 = 1
- Endif
- If (STRING001 == Upper(STRING020)) FUNCTION002 = 1
- If (STRING001 == Upper(STRING021)) FUNCTION002 = 1
- Case "+"
- STRING028 = "YES"
- BOOLEAN008 = 1
- If (CurSec() < INT007) Then
- FUNCTION002 = 0
- Else
- FUNCTION002 = 1
- Endif
- If (STRING001 == Upper(STRING020)) FUNCTION002 = 1
- If (STRING001 == Upper(STRING021)) FUNCTION002 = 1
- Case "-"
- STRING028 = "YES"
- BOOLEAN008 = 0
- FUNCTION002 = 1
- Case "~"
- STRING028 = "NO"
- If (CurSec() < INT006) FUNCTION002 = 0
- Case "`"
- STRING028 = "YES"
- If (CurSec() < INT006) FUNCTION002 = 0
- End Select
-
- EndFunc
-
-
- ;------------------------------------------------------------------------------
-
- Function FUNCTION003(String STRING056) String
-
- Integer INTEGER010
-
- STRING056 = ReplaceStr(STRING056, "|01", "")
- STRING056 = ReplaceStr(STRING056, "|02", "")
- STRING056 = ReplaceStr(STRING056, "|03", "")
- STRING056 = ReplaceStr(STRING056, "|04", "")
- STRING056 = ReplaceStr(STRING056, "|05", "")
- STRING056 = ReplaceStr(STRING056, "|06", "")
- STRING056 = ReplaceStr(STRING056, "|07", "")
- STRING056 = ReplaceStr(STRING056, "|08", "")
- STRING056 = ReplaceStr(STRING056, "|09", "")
- STRING056 = ReplaceStr(STRING056, "|10", "")
- STRING056 = ReplaceStr(STRING056, "|11", "")
- STRING056 = ReplaceStr(STRING056, "|12", "")
- STRING056 = ReplaceStr(STRING056, "|13", "")
- STRING056 = ReplaceStr(STRING056, "|14", "")
- FUNCTION003 = ReplaceStr(STRING056, "|15", "")
-
- EndFunc
-
-
- ;------------------------------------------------------------------------------
-
- Function FUNCTION004(Integer INTEGER010) Integer
-
- Integer TINTEGER012(3)
- Integer TINTEGER013(3)
-
- TINTEGER012(0) = ScanMsgHdr(CurConf(), INTEGER010, 7, U_Alias)
- TINTEGER012(1) = ScanMsgHdr(CurConf(), INTEGER010, 7, U_Name())
- TINTEGER012(2) = ScanMsgHdr(CurConf(), INTEGER010, 7, "@USER@")
- If (U_RecNum(U_Name()) == 1) Then
- TINTEGER012(3) = ScanMsgHdr(CurConf(), INTEGER010, 7, "SYSOP")
- Else
- TINTEGER012(3) = -1
- Endif
- Sort TINTEGER012, TINTEGER013
- FUNCTION004 = TINTEGER012(TINTEGER013(0))
- If (FUNCTION004 == -1) FUNCTION004 = TINTEGER012(TINTEGER013(1))
- If (FUNCTION004 == -1) FUNCTION004 = TINTEGER012(TINTEGER013(2))
- If (FUNCTION004 == -1) FUNCTION004 = TINTEGER012(TINTEGER013(3))
-
- EndFunc
-
-
- ;------------------------------------------------------------------------------
- ;
- ; Usage report (before postprocessing)
- ;
- ; ■ Statements used :
- ;
- ; 6 End
- ; 1 Cls
- ; 2 ClrEol
- ; 1 More
- ; 4 Wait
- ; 267 Goto
- ; 211 Let
- ; 7 Print
- ; 19 PrintLn
- ; 169 If
- ; 1 ConfUnflag
- ; 2 DispFile
- ; 13 FOpen
- ; 15 FClose
- ; 29 FGet
- ; 2 FPut
- ; 22 FPutLn
- ; 5 StartDisp
- ; 2 GetUser
- ; 4 PutUser
- ; 2 DefColor
- ; 15 Delete
- ; 1 Log
- ; 2 InputStr
- ; 4 Gosub
- ; 2 Return
- ; 12 Inc
- ; 8 Dec
- ; 19 Newline
- ; 2 Newlines
- ; 4 Tokenize
- ; 2 Shell
- ; 2 DispText
- ; 1 InputText
- ; 1 KbdStuff
- ; 2 Call
- ; 5 OpText
- ; 2 AnsiPos
- ; 3 Backup
- ; 2 Message
- ; 1 SaveScrn
- ; 1 RestScrn
- ; 1 Sort
- ; 5 SetLmr
- ; 3 FCloseAll
- ; 9 EndProc
- ; 4 EndFunc
- ; 3 MsgToFile
- ; 2 Command
- ; 2 KillMsg
- ;
- ;
- ; ■ Functions used :
- ;
- ; 8 -
- ; 82 +
- ; 9 -
- ; 116 ==
- ; 5 <>
- ; 13 <
- ; 5 <=
- ; 12 >
- ; 13 >=
- ; 146 !
- ; 10 &&
- ; 44 ||
- ; 7 Len(
- ; 1 Lower()
- ; 8 Upper()
- ; 10 Left()
- ; 5 Right()
- ; 4 Ferr()
- ; 7 Chr()
- ; 5 InStr()
- ; 5 Abort()
- ; 1 RTrim()
- ; 11 Trim()
- ; 6 U_Name()
- ; 1 NoChar()
- ; 1 YesChar()
- ; 1 StripAtx()
- ; 4 Strip()
- ; 24 String()
- ; 2 Mask_Ascii()
- ; 38 CurConf()
- ; 8 PCBDat()
- ; 19 PPEPath()
- ; 9 PcbNode()
- ; 8 ReadLine()
- ; 3 SysopSec()
- ; 4 OnLocal()
- ; 8 CurSec()
- ; 5 GetToken()
- ; 12 Exist()
- ; 6 S2I()
- ; 4 LangExt()
- ; 3 GetX()
- ; 1 GetY()
- ; 1 PPEName()
- ; 13 TempPath()
- ; 1 TokCount()
- ; 1 U_RecNum()
- ; 1 ScrText()
- ; 48 ReplaceStr()
- ; 58 StripStr()
- ; 4 Mixed()
- ; 2 ConfSel()
- ; 2 IsNonStop()
- ; 6 U_Lmr()
- ; 1 LoMsgNum()
- ; 8 HiMsgNum()
- ; 2 PCBMac()
- ; 7 ScanMsgHdr()
- ; 7 ConfInfo()
- ; 1 TInkey()
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Analysis flags : FWSCds
- ;
- ; F - Change conference flags status ■ 2
- ; This may be normal for a SELECT replacement but it may also be
- ; a way to get access to conferences a user is not allowed to.
- ; ■ Search for : CONFFLAG, CONFUNFLAG
- ;
- ; W - Write user ■ 5
- ; Program writes a user record. Although this may be normal for a
- ; User Editor, it may also be a way to modify an account level.
- ; ■ Search for : PUTUSER
- ;
- ; S - Shell to DOS ■ 5
- ; This may be normal if the PPE need to execute an external command,
- ; but may be actually anything... nasty (formating HD, rebooting,...)
- ; or usefull (sorting, maintenance,...). Check!
- ; ■ Search for : SHELL
- ;
- ; C - Call child PPE ■ 3
- ; This is usually normal, but may be a tricky way to launch some
- ; sysop-only commands.
- ; ■ Search for : CALL
- ;
- ; d - Access PCBOARD.DAT ■ 2
- ; Program gets the full pathname to PCBOARD.DAT, this may be usefull
- ; for many PPE so they can find various informations on the system
- ; (system paths, max number of lines in messages, ...) but it may also
- ; be a way to gather vital informations.
- ; ■ Search for : PCBDAT()
- ;
- ; s - Sysop level access ■ 5
- ; Program is reading the sysop access level, this may be normal
- ; but still it is very suspect. It is the best way to give a user
- ; all priviledges. Check!
- ; ■ Search for : SYSOPSEC()
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Postprocessing report
- ;
- ; 5 For/Next
- ; 3 While/EndWhile
- ; 86 If/Then or If/Then/Else
- ; 4 Select Case
- ;
- ;------------------------------------------------------------------------------
- ; AEGiS Corp - Break the routines, code against the machines!
- ;------------------------------------------------------------------------------
-